elec_austrLe jeu de données elec_austr (source : http://robjhyndman.com/mwh3/data/elec.csv) contient 476 observations (mensuelles, de janvier 1956 à août 1995) de la consommation électrique en Australie (en TWh).
elec_frLe jeu de données elec_fr (source : https://www.rte-france.com/eco2mix/la-consommation-delectricite-en-france) contient 17 568 observations (demi-horaires, du 01/01/2020 à 0h au 31/12/2020 à 23:30) des 4 variables suivantes :
elec_austr## 'data.frame': 476 obs. of 1 variable:
## $ conso: int 1254 1290 1379 1346 1535 1555 1655 1651 1500 1538 ...
## conso
## 1 1254
## 2 1290
## 3 1379
## 4 1346
## 5 1535
## 6 1555
On lisse la série à l’aide de la moyenne mobile \(M_{(2\times)12}\) : \[M_{(2\times)12}X_t=\frac{1}{12}\left(\frac{1}{2}X_{t-6}+X_{t-5}+X_{t-4}+X_{t-3}+X_{t-2}+X_{t-1}+X_t+X_{t+1}+X_{t+2}+X_{t+3}+X_{t+4}+X_{t+5}+\frac{1}{2}X_{t+6}\right)\
.\] On utilise pour cela la commande filter :
elec_fr## 'data.frame': 17568 obs. of 4 variables:
## $ date : chr "01/01/2020" "01/01/2020" "01/01/2020" "01/01/2020" ...
## $ hm : chr "00:00" "00:30" "01:00" "01:30" ...
## $ conso: int 67068 66103 63943 63904 63408 62711 60825 59332 58004 57125 ...
## $ prev : int 68000 66600 64900 65500 65400 64000 62000 60500 59100 58200 ...
## date hm conso prev
## 1 01/01/2020 00:00 67068 68000
## 2 01/01/2020 00:30 66103 66600
## 3 01/01/2020 01:00 63943 64900
## 4 01/01/2020 01:30 63904 65500
## 5 01/01/2020 02:00 63408 65400
## 6 01/01/2020 02:30 62711 64000
elec_austrOn créé les dates via une séquence :
elec_austr$date <- seq(from=as.Date("1956/01/01"), by="month", length.out=nrow(elec_austr))
head(elec_fr$date)## [1] "01/01/2020" "01/01/2020" "01/01/2020" "01/01/2020" "01/01/2020"
## [6] "01/01/2020"
elec_frOn peut utiliser le package lubridate et ses multiples
commandes de conversion :
## [1] "2020-01-01 00:00:00 UTC" "2020-01-01 00:30:00 UTC"
## [3] "2020-01-01 01:00:00 UTC" "2020-01-01 01:30:00 UTC"
## [5] "2020-01-01 02:00:00 UTC" "2020-01-01 02:30:00 UTC"
Il existe des nombreuses fonctions du type dmy_hms,
dmy_h, dmy_hm, dmy_hm,
mdy_hms, mdy_h, mdy_hm,
mdy_hm
On peut créer des objets ts (time series) à l’aide
de la commande ts en précisant éventuellement les dates (au
pas de temps mensuel) et la fréquence (par défaut égale à 1).
Dans R la décomposition saisonnière est réalisée par défaut à l’aide
de la commande decompose ; cette commande s’applique sur
des objets ts en considérant comme période de la saisonnalité
leur fréquence.
Les fréquences classiques sont 1, 4 (données au pas de temps trimestriel) et 12 (données au pas de temps mensuel).
Pour des données trimestrielles, on pourrait par exemple écrire pour des dates débutant au 3e trimestre 1990 :
## Qtr1 Qtr2 Qtr3 Qtr4
## 1990 2 6
## 1991 1 5 8 3
## 1992 7 4 9
elec_austrOn peut travailler sur une seule série temporelle :
ou plusieurs :
elec_austr_ts <- ts(elec_austr[, c("conso", "tend")], start=c(1956, 1), frequency=12)
colnames(elec_austr_ts) <- c("Consommation électrique australienne", "Consommation électrique australienne lissée")
head(elec_austr_ts, n=20)## Consommation électrique australienne
## [1,] 1254
## [2,] 1290
## [3,] 1379
## [4,] 1346
## [5,] 1535
## [6,] 1555
## [7,] 1655
## [8,] 1651
## [9,] 1500
## [10,] 1538
## [11,] 1486
## [12,] 1394
## [13,] 1409
## [14,] 1387
## [15,] 1543
## [16,] 1502
## [17,] 1693
## [18,] 1616
## [19,] 1841
## [20,] 1787
## Consommation électrique australienne lissée
## [1,] NA
## [2,] NA
## [3,] NA
## [4,] NA
## [5,] NA
## [6,] NA
## [7,] 1471.708
## [8,] 1482.208
## [9,] 1493.083
## [10,] 1506.417
## [11,] 1519.500
## [12,] 1528.625
## [13,] 1538.917
## [14,] 1552.333
## [15,] 1563.458
## [16,] 1573.542
## [17,] 1582.333
## [18,] 1590.917
## [19,] 1599.000
## [20,] 1605.833
On peut obtenir la fréquence :
## [1] 12
## [1] 12
On peut sélectionner des instants de la série temporelle :
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1980 7824 7524 8279 8707 9486 8973 8231 8206 7927 7999
## 1981 7834 7521 8284 7999 8940 9381 10078 9796 8471
## Consommation électrique australienne
## Mar 1980 7824
## Apr 1980 7524
## May 1980 8279
## Jun 1980 8707
## Jul 1980 9486
## Aug 1980 8973
## Sep 1980 8231
## Oct 1980 8206
## Nov 1980 7927
## Dec 1980 7999
## Jan 1981 7834
## Feb 1981 7521
## Mar 1981 8284
## Apr 1981 7999
## May 1981 8940
## Jun 1981 9381
## Jul 1981 10078
## Aug 1981 9796
## Sep 1981 8471
## Consommation électrique australienne lissée
## Mar 1980 8041.958
## Apr 1980 8062.792
## May 1980 8092.458
## Jun 1980 8135.583
## Jul 1980 8180.833
## Aug 1980 8204.792
## Sep 1980 8228.417
## Oct 1980 8267.375
## Nov 1980 8314.708
## Dec 1980 8370.333
## Jan 1981 8423.083
## Feb 1981 8482.042
## Mar 1981 8526.333
## Apr 1981 8551.583
## May 1981 8576.125
## Jun 1981 8592.458
## Jul 1981 8613.333
## Aug 1981 8643.083
## Sep 1981 8672.417
On peut extraire les dates de la série temporelle à l’aide de la
commande as.Date du package zoo (pas la
commande as.Date du package base) :
## [1] "1956-01-01" "1956-02-01" "1956-03-01" "1956-04-01" "1956-05-01"
## [6] "1956-06-01"
elec_frOn peut travailler sur une seule série temporelle :
ou plusieurs :
elec_fr_ts <- ts(elec_fr[, c("conso", "prev")])
colnames(elec_fr_ts) <- c("Consommation électrique française", "Consommation électrique française prévue")
head(elec_fr_ts)## Consommation électrique française Consommation électrique française prévue
## [1,] 67068 68000
## [2,] 66103 66600
## [3,] 63943 64900
## [4,] 63904 65500
## [5,] 63408 65400
## [6,] 62711 64000
On ne peut considérer ici que les dates et fréquence par défaut : le numéro de l’observation pour les instants et 1 pour la fréquence.
On peut vérifier la fréquence :
## [1] 1
## [1] 1
On peut également utiliser le package xts (extended
time series) pour gérer les séries temporelles. Ce package a pour
ambition d’unifier différentes classes d’objets dont ts et
zoo. On peut définir des dates au pas de temps souhaité (même
la seconde).
elec_austrOn peut travailler sur une seule série temporelle :
## m.c.seq.row..seq.n...seq.col..drop...FALSE.
## 1956-01-01 1254
## 1956-02-01 1290
## 1956-03-01 1379
## 1956-04-01 1346
## 1956-05-01 1535
## 1956-06-01 1555
## 1956-07-01 1655
## 1956-08-01 1651
## 1956-09-01 1500
## 1956-10-01 1538
## ...
## 1994-11-01 13243
## 1994-12-01 13590
## 1995-01-01 13487
## 1995-02-01 12776
## 1995-03-01 13812
## 1995-04-01 13032
## 1995-05-01 14268
## 1995-06-01 14473
## 1995-07-01 15359
## 1995-08-01 14457
ou plusieurs :
elec_austr_xts <- xts(elec_austr[, c("conso", "tend")], order.by=elec_austr$date)
colnames(elec_austr_xts) <- c("Consommation électrique australienne", "Consommation électrique australienne lissée")On peut sélectionner des instants de la série temporelle :
## [,1]
## 1990-01-01 12336
## 1990-02-01 11793
## 1990-03-01 12877
## 1990-04-01 11923
## 1990-05-01 13306
## 1990-06-01 13988
## 1990-07-01 14002
## 1990-08-01 14336
## 1990-09-01 12867
## 1990-10-01 12721
## 1990-11-01 12449
## 1990-12-01 12686
## Consommation électrique australienne
## 1990-01-01 12336
## 1990-02-01 11793
## 1990-03-01 12877
## 1990-04-01 11923
## 1990-05-01 13306
## 1990-06-01 13988
## 1990-07-01 14002
## 1990-08-01 14336
## 1990-09-01 12867
## 1990-10-01 12721
## 1990-11-01 12449
## 1990-12-01 12686
## Consommation électrique australienne lissée
## 1990-01-01 12748.62
## 1990-02-01 12771.71
## 1990-03-01 12812.42
## 1990-04-01 12839.71
## 1990-05-01 12864.12
## 1990-06-01 12910.79
## 1990-07-01 12960.08
## 1990-08-01 12989.08
## 1990-09-01 12998.79
## 1990-10-01 13020.42
## 1990-11-01 13049.62
## 1990-12-01 13017.08
## [,1]
## 1990-08-01 14336
## Consommation électrique australienne
## 1990-08-01 14336
## Consommation électrique australienne lissée
## 1990-08-01 12989.08
## [,1]
## 1980-03-01 7824
## 1980-04-01 7524
## 1980-05-01 8279
## 1980-06-01 8707
## 1980-07-01 9486
## 1980-08-01 8973
## 1980-09-01 8231
## 1980-10-01 8206
## 1980-11-01 7927
## 1980-12-01 7999
## 1981-01-01 7834
## 1981-02-01 7521
## 1981-03-01 8284
## 1981-04-01 7999
## 1981-05-01 8940
## 1981-06-01 9381
## 1981-07-01 10078
## 1981-08-01 9796
## 1981-09-01 8471
## Consommation électrique australienne
## 1980-03-01 7824
## 1980-04-01 7524
## 1980-05-01 8279
## 1980-06-01 8707
## 1980-07-01 9486
## 1980-08-01 8973
## 1980-09-01 8231
## 1980-10-01 8206
## 1980-11-01 7927
## 1980-12-01 7999
## 1981-01-01 7834
## 1981-02-01 7521
## 1981-03-01 8284
## 1981-04-01 7999
## 1981-05-01 8940
## 1981-06-01 9381
## 1981-07-01 10078
## 1981-08-01 9796
## 1981-09-01 8471
## Consommation électrique australienne lissée
## 1980-03-01 8041.958
## 1980-04-01 8062.792
## 1980-05-01 8092.458
## 1980-06-01 8135.583
## 1980-07-01 8180.833
## 1980-08-01 8204.792
## 1980-09-01 8228.417
## 1980-10-01 8267.375
## 1980-11-01 8314.708
## 1980-12-01 8370.333
## 1981-01-01 8423.083
## 1981-02-01 8482.042
## 1981-03-01 8526.333
## 1981-04-01 8551.583
## 1981-05-01 8576.125
## 1981-06-01 8592.458
## 1981-07-01 8613.333
## 1981-08-01 8643.083
## 1981-09-01 8672.417
On peut extraire les dates de la série temporelle :
## [1] "1956-01-01" "1956-02-01" "1956-03-01" "1956-04-01" "1956-05-01"
## [6] "1956-06-01"
elec_frOn peut travailler sur une seule série temporelle :
## Warning: object timezone ('UTC') is different from system timezone ('')
## NOTE: set 'options(xts_check_TZ = FALSE)' to disable this warning
## This note is displayed once per session
## [,1]
## 2020-01-01 00:00:00 67068
## 2020-01-01 00:30:00 66103
## 2020-01-01 01:00:00 63943
## 2020-01-01 01:30:00 63904
## 2020-01-01 02:00:00 63408
## 2020-01-01 02:30:00 62711
ou plusieurs :
## Warning: object timezone ('UTC') is different from system timezone ('')
## conso prev
## 2020-01-01 00:00:00 67068 68000
## 2020-01-01 00:30:00 66103 66600
## 2020-01-01 01:00:00 63943 64900
## 2020-01-01 01:30:00 63904 65500
## 2020-01-01 02:00:00 63408 65400
## 2020-01-01 02:30:00 62711 64000
colnames(elec_fr_xts) <- c("Consommation électrique française", "Consommation électrique française prévue")
head(elec_fr_xts)## Warning: object timezone ('UTC') is different from system timezone ('')
## Consommation électrique française
## 2020-01-01 00:00:00 67068
## 2020-01-01 00:30:00 66103
## 2020-01-01 01:00:00 63943
## 2020-01-01 01:30:00 63904
## 2020-01-01 02:00:00 63408
## 2020-01-01 02:30:00 62711
## Consommation électrique française prévue
## 2020-01-01 00:00:00 68000
## 2020-01-01 00:30:00 66600
## 2020-01-01 01:00:00 64900
## 2020-01-01 01:30:00 65500
## 2020-01-01 02:00:00 65400
## 2020-01-01 02:30:00 64000
On peut sélectionner des instants de la série temporelle :
## Warning: object timezone ('UTC') is different from system timezone ('')
## [,1]
## 2020-01-21 18:00:00 77507
On peut extraire les dates de la série temporelle :
## [1] "2020-01-01 00:00:00 UTC" "2020-01-01 00:30:00 UTC"
## [3] "2020-01-01 01:00:00 UTC" "2020-01-01 01:30:00 UTC"
## [5] "2020-01-01 02:00:00 UTC" "2020-01-01 02:30:00 UTC"
On peut également utiliser le package tsibble pour gérer
les séries temporelles, ce package étend la notion de tibble aux séries
temporelles.
elec_austrOn peut travailler sur une seule série temporelle :
elec_austr_conso_tsibble <- tsibble(date=elec_austr$date,
conso=elec_austr$conso,
index=date)
head(elec_austr_conso_tsibble)## # A tsibble: 6 x 2 [1D]
## date conso
## <date> <int>
## 1 1956-01-01 1254
## 2 1956-02-01 1290
## 3 1956-03-01 1379
## 4 1956-04-01 1346
## 5 1956-05-01 1535
## 6 1956-06-01 1555
ou plusieurs :
elec_austr_conso_tsibble <- tsibble(date=elec_austr$date,
conso=elec_austr$conso,
tend=elec_austr$tend,
index=date)
head(elec_austr_conso_tsibble, n=10)## # A tsibble: 10 x 3 [1D]
## date conso tend
## <date> <int> <dbl>
## 1 1956-01-01 1254 NA
## 2 1956-02-01 1290 NA
## 3 1956-03-01 1379 NA
## 4 1956-04-01 1346 NA
## 5 1956-05-01 1535 NA
## 6 1956-06-01 1555 NA
## 7 1956-07-01 1655 1472.
## 8 1956-08-01 1651 1482.
## 9 1956-09-01 1500 1493.
## 10 1956-10-01 1538 1506.
elec_austrOn peut travailler sur une seule série temporelle :
elec_fr_tsibble <- tsibble(datehm=elec_fr$datehm,
conso=elec_fr$conso,
index=datehm)
head(elec_fr_tsibble)## # A tsibble: 6 x 2 [30m] <UTC>
## datehm conso
## <dttm> <int>
## 1 2020-01-01 00:00:00 67068
## 2 2020-01-01 00:30:00 66103
## 3 2020-01-01 01:00:00 63943
## 4 2020-01-01 01:30:00 63904
## 5 2020-01-01 02:00:00 63408
## 6 2020-01-01 02:30:00 62711
ou plusieurs :
elec_fr_tsibble <- tsibble(datehm=elec_fr$datehm,
conso=elec_fr$conso,
prev=elec_fr$prev,
index=datehm)
head(elec_fr_tsibble)## # A tsibble: 6 x 3 [30m] <UTC>
## datehm conso prev
## <dttm> <int> <int>
## 1 2020-01-01 00:00:00 67068 68000
## 2 2020-01-01 00:30:00 66103 66600
## 3 2020-01-01 01:00:00 63943 64900
## 4 2020-01-01 01:30:00 63904 65500
## 5 2020-01-01 02:00:00 63408 65400
## 6 2020-01-01 02:30:00 62711 64000
lubridateelec_austr## [1] "1956-01-01" "1956-02-01" "1956-03-01" "1956-04-01" "1956-05-01"
## [6] "1956-06-01" "1956-07-01" "1956-08-01" "1956-09-01" "1956-10-01"
## [11] "1956-11-01" "1956-12-01" "1957-01-01" "1957-02-01" "1957-03-01"
## [16] "1957-04-01" "1957-05-01" "1957-06-01" "1957-07-01" "1957-08-01"
## [1] 1956 1956 1956 1956 1956 1956 1956 1956 1956 1956 1956 1956 1957 1957 1957
## [16] 1957 1957 1957 1957 1957
## [1] "January" "February" "March" "April" "May" "June"
## [7] "July" "August" "September" "October" "November" "December"
## [13] "January" "February" "March" "April" "May" "June"
## [19] "July" "August" "September" "October" "November" "December"
## [25] "January" "February" "March" "April" "May" "June"
## [31] "July" "August" "September" "October" "November" "December"
## [37] "January" "February" "March" "April" "May" "June"
## [43] "July" "August" "September" "October" "November" "December"
## [49] "January" "February" "March" "April" "May" "June"
## [55] "July" "August" "September" "October" "November" "December"
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1
## [26] 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2
## [51] 3 4 5 6 7 8 9 10 11 12
## [1] 1 32 61 92 122 153 183 214 245 275 306 336 1 32 60 91 121 152 182
## [20] 213
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1] 7 3 4 7 2 5 7 3 6 1 4 6 2 5 5 1 3 6 1 4
Dans la convention anglo-saxonne, 1 correspond au dimanche. L’option
week_start=1 fait débuter la semaine au lundi.
## [1] Sun Wed Thu Sun Tue Fri Sun Wed Sat Mon Thu Sat Tue Fri Fri Mon Wed Sat Mon
## [20] Thu
## Levels: Mon < Tue < Wed < Thu < Fri < Sat < Sun
On peut “arrondir” les dates à l’aide des commande
round_date, florr_date et
ceiling_date :
## [1] "1956-01-01" "1956-01-01" "1956-01-01" "1956-01-01" "1956-01-01"
## [6] "1956-01-01" "1956-01-01" "1956-01-01" "1956-01-01" "1956-01-01"
## [11] "1956-01-01" "1956-01-01" "1957-01-01" "1957-01-01" "1957-01-01"
## [16] "1957-01-01" "1957-01-01" "1957-01-01" "1957-01-01" "1957-01-01"
elec_fr## [1] "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01"
## [6] "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01"
## [11] "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01"
## [16] "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01" "2020-01-01"
On peut alors travailler sur les dates comme vu avec le jeu de
données elec_austr.
## [1] 0 0 1 1 2 2
## [1] 0 30 0 30 0 30
On peut “arrondir” les dates à l’aide des commande
round_date, floor_date et
ceiling_date :
## [1] "2020-01-01 00:00:00 UTC" "2020-01-01 00:00:00 UTC"
## [3] "2020-01-01 01:00:00 UTC" "2020-01-01 01:00:00 UTC"
## [5] "2020-01-01 02:00:00 UTC" "2020-01-01 02:00:00 UTC"
## [7] "2020-01-01 03:00:00 UTC" "2020-01-01 03:00:00 UTC"
## [9] "2020-01-01 04:00:00 UTC" "2020-01-01 04:00:00 UTC"
## [11] "2020-01-01 05:00:00 UTC" "2020-01-01 05:00:00 UTC"
## [13] "2020-01-01 06:00:00 UTC" "2020-01-01 06:00:00 UTC"
## [15] "2020-01-01 07:00:00 UTC" "2020-01-01 07:00:00 UTC"
## [17] "2020-01-01 08:00:00 UTC" "2020-01-01 08:00:00 UTC"
## [19] "2020-01-01 09:00:00 UTC" "2020-01-01 09:00:00 UTC"
## [21] "2020-01-01 10:00:00 UTC" "2020-01-01 10:00:00 UTC"
## [23] "2020-01-01 11:00:00 UTC" "2020-01-01 11:00:00 UTC"
## [25] "2020-01-01 12:00:00 UTC" "2020-01-01 12:00:00 UTC"
## [27] "2020-01-01 13:00:00 UTC" "2020-01-01 13:00:00 UTC"
## [29] "2020-01-01 14:00:00 UTC" "2020-01-01 14:00:00 UTC"
## [31] "2020-01-01 15:00:00 UTC" "2020-01-01 15:00:00 UTC"
## [33] "2020-01-01 16:00:00 UTC" "2020-01-01 16:00:00 UTC"
## [35] "2020-01-01 17:00:00 UTC" "2020-01-01 17:00:00 UTC"
## [37] "2020-01-01 18:00:00 UTC" "2020-01-01 18:00:00 UTC"
## [39] "2020-01-01 19:00:00 UTC" "2020-01-01 19:00:00 UTC"
## [1] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [5] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [9] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [13] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [17] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [21] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [25] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [29] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [33] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [37] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [1] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [5] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [9] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [13] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [17] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [21] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [25] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [29] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [33] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [37] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [1] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [5] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [9] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [13] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [17] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [21] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [25] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [29] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [33] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
## [37] "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC" "2020-01-01 UTC"
plotggplotelec_austrggplot()+
geom_line(data=elec_austr, aes(x=date, y=conso))+
labs(x="", y="Consommation électrique australienne")ggplot()+
geom_line(data=elec_austr, aes(x=date, y=conso, colour="Consommation électrique australienne"))+
geom_line(data=elec_austr, aes(x=date, y=tend, colour="Consommation électrique australienne lissée"))+
labs(x="", y="", colour="")## Warning: Removed 12 rows containing missing values or values outside the scale range
## (`geom_line()`).
elec_frggplot()+
geom_line(data=elec_fr, aes(x=datehm, y=conso))+
labs(x="", y="Consommation électrique française")ggplot()+
geom_line(data=elec_fr, aes(x=datehm, y=conso, colour="Consommation électrique française"))+
geom_line(data=elec_fr, aes(x=datehm, y=prev, colour="Consommation électrique française prévue"))+
labs(x="", y="", colour="")autoplotelec_austrplot.ts ou ts.plotOn peut utiliser les commandes plot.ts et
ts.plot sur des objets qui ne sont pas au format
ts, mais aucune date n’est alors gérée. Evidemment, on peut
utiliser la commande plot.ts sur des objets ts (on
peut simplement écrire plot pour des objets
ts).
On peut facilement superposer plusieurs séries temporelles au format
ts ayant la même fréquence à l’aide de la commande
ts.plot
La commande ts.plot permet de tracer non seulement des
graphiques identiques à ceux obtenus par la commande
plot.ts mais également de superposer plusieurs séries
temporelles au format ts ayant la même fréquence.
elec_austrplot.ts(elec_austr$conso, xlab="", ylab="Consommation électrique australienne")
ts.plot(elec_austr$conso, xlab="", ylab="Consommation électrique australienne")elec_austr_tend_ts <- ts(elec_austr$tend, start=c(1956, 1), frequency=12)
ts.plot(elec_austr_ts, elec_austr_tend_ts, xlab="", col=c(1, 2))
legend("topleft", col=c(1, 2), lwd=c(1, 1), legend=c("Consommation électrique australienne", "Consommation électrique australienne lissée"))plot.xts :On peut utiliser la commande plot.xts du package
xts sur des objets xts (ou le raccourci
plot).
elec_austrplot.xts(elec_austr_conso_xts, main="Consommation électrique australienne")
plot(elec_austr_conso_xts, main="Consommation électrique australienne")plot.xts(elec_austr_xts, main="Consommation électrique australienne (lissée ou non)")
plot(elec_austr_xts, main="Consommation électrique australienne (lissée ou non)")dygraphOn peut utiliser la commande dygraph du package
dygraphs sur des objets ts ou xts :
On peut facilement zoomer à l’aide d’une sélection via la souris, et dezoomer en double cliquant sur le graphique). Lors du passage de la souris (sans clic) sur le graphique, date et valeur sont affichées.
On peut également ajouter une barre de défilement (on peut jouer sur les curseurs).
elec_austr)xyplotdf <- data.frame(conso=elec_austr$conso,
mois=month(elec_austr$date),
an=year(elec_austr$date))
xyplot(conso~mois,
data=df,
group=an,
type="l",
xlab="Mois",
ylab="Consommation électrique australienne",
auto.key=list(space="bottom", title="Années", columns=5, just=0.1))ggseasonplotggseasonplot(elec_austr_conso_ts,
xlab="Mois",
ylab="Consommation électrique australienne",
main="Graphique saisonnier")On calcule les minima et maxima annuels :
## year(elec_austr$date)
## 1956 1957 1958 1959 1960 1961
## 1254 1387 1463 1577 1721 1839
## year(elec_austr$date)
## 1956 1957 1958 1959 1960 1961
## 1655 1841 1994 2105 2287 2382
df <- data.frame(x=min(year(elec_austr$date)):max(year(elec_austr$date)),
y=as.numeric(max_an-min_an))
ggplot()+
geom_bar(data=df, aes(x=x, y=y), stat="identity", fill="steelblue", width=0.5)+
labs(x="Année", y="Amplitude", title="Où l'on voit des amplitudes croissantes")